package fiuba.algo3;

import fiuba.algo3.XMLProcessor.nucleo.Nodo;
import fiuba.algo3.XMLProcessor.nucleo.NodoXML;
import fiuba.algo3.persistencia.ConstructorSospechoso;
import fiuba.algo3.persistencia.XMLConstruible;

public class Sospechoso implements XMLConstruible
{
	private final String nombre;
	private final Perfil perfil;

	public Sospechoso(String nombre, Perfil perfil)
	{
		this.nombre = nombre;
		this.perfil = perfil;
	}

	public String nombre()
	{
		return this.nombre;
	}

	public boolean comparar(Sospechoso s) 
	{
		if (!s.nombre().equals(this.nombre))
			return false;

		return (s.coincidePerfil(this.perfil));
	}

	public boolean coincidePerfil(Perfil perfil)
	{
		return perfil.coincide(this.perfil);
	}
	
	public boolean coincideExactamentePerfil(Perfil perfil)
	{
		return perfil.coincideExactamente(this.perfil);
	}

	public String obtenerSexo() {
		return perfil.obtenerSexo();
	}

	public Sospechoso construir(NodoXML nodo)
	{
		return ConstructorSospechoso.construir(nodo);
	}

	public NodoXML nodalizar()
	{
		NodoXML nodoRaiz = new Nodo("objeto");
//		nodoRaiz.setAttribute("clase", ConstructorSospechoso.CLASE);
//		nodoRaiz.appendChild(fabricaDeNodos.nuevoNodoCampoPrimitivo("nombre", this.nombre));
//		nodoRaiz.appendChild(fabricaDeNodos.nuevoNodoCampo("perfil", this.perfil.nodalizar(fabricaDeNodos)));
		return nodoRaiz;
	}

	public String obtenerPistaAleatoria() {
		
		int i =(int) (Math.random()*4);
		
		switch(i)
		{
		case 0:	return ("Fue visto manejando un " + perfil.obtenerVehiculo());
				
		case 1:	return ("Fue avistado haciendo " + perfil.obtenerHobby());
				
		case 2:	return ("Tenia el pelo " + perfil.obtenerCabello());
				
		case 3: return ("Su senia era: " + perfil.obtenerSenia());
		
		default: return "";
			
		}		
	}	
}
